package com.lovo;

import java.io.*;
import java.util.Properties;

public class Test04 {
    public static void main(String[] args) {
        File file = new File("d:/testgit");
//        System.out.println("getAbsolutePath:" + file.getAbsolutePath());
//        System.out.println("exists:" + file.exists());
//        System.out.println("isFile:" + file.isFile());
//        System.out.println("isDirectory:" + file.isDirectory());
//
//        file.delete(); // 可以删除文件或文件夹，但文件夹必须为空
////        file.mkdir(); // 只能创建一级目录
//        file.mkdirs();// 可以创建多级目录
//        File [] files = file.listFiles();
//        for(int i = 0;i < files.length;i++){
//            System.out.println(files[i].getAbsolutePath());
//        }
        Test04 test04 = new Test04();
//        test04.moveFile("D:\\a\\2.png","d:\\111\\1.png");

        test04.deleteDir("D:\\testgit - 副本");


    }
    public void moveFile(String src,String dist){
        // 移动文件，如果指定的文件不存在或目标文件夹不存在，则给出提示
        File srcFile = new File(src);
        File distFile = new File(dist);
        if(!srcFile.exists()){
            System.out.println("移动的文件不存在");
            return;
        }
        if(!srcFile.isFile()){
            System.out.println("移动的文件不能是目录");
            return;
        }
        if(!distFile.getParentFile().exists()){
            System.out.println("目标文件所在的目录不存在");
            return;
        }
//        if(!distFile.exists()){
//            System.out.println("目标文件不存在");
//            try {
//                distFile.createNewFile();
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
////            return;
//        }
        FileInputStream fis = null;
        FileOutputStream fos = null;
        try {
            fis = new FileInputStream(src);
            fos = new FileOutputStream(dist);
            int len = 0;
            byte [] bs = new byte[1024];
            while((len = fis.read(bs)) != -1){
                fos.write(bs,0,len);
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(fis != null){
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(fos != null){
                try {
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            srcFile.delete();
        }
    }

    // 删除指定文件夹及其里面所有内容，递归
    public void deleteDir(String dirPath){
        File file = new File(dirPath);
        File [] listFiles = file.listFiles();
        for(int i = 0;i < listFiles.length;i++){
            if(listFiles[i].isDirectory()){
                deleteDir(listFiles[i].getAbsolutePath());
            }else{
//                System.out.println("删除文件：" + listFiles[i].getAbsolutePath());
                listFiles[i].delete();
            }
        }
//        System.out.println("删除文件夹：" + file.getAbsolutePath());
        file.delete();
    }
}
